home *** CD-ROM | disk | FTP | other *** search
/ Wonky Flux Batch 2019 02 / Wonky_Flux_Batch_2019-02.zip / Wonky Flux Batch 2019-02 / 099 - System Utilities for the IIc - 680-3234-A.dsk / SU.bas < prev    next >
BASIC Source File  |  2019-02-17  |  29KB  |  493 lines

  1. 40  GOTO 60000
  2. 100  PRINT  CHR$(15); CHR$(27);: FOR A = 1 TO M/20: PRINT "SSSSSSSSSSSSSSSSSSSS";: NEXT : PRINT  CHR$(14); CHR$(24);: RETURN 
  3. 200 V = 21: IF C8  THEN V = 22
  4. 240  PRINT : VTAB V: GOSUB 100
  5. 250  RETURN 
  6. 400  IF   NOT HM  THEN  RETURN 
  7. 436  IF  PEEK(A1) <128  AND  PEEK(A2) <128  THEN  RETURN 
  8. 450  IF A$ = "?"  OR A$ = "/"  THEN HE = 1
  9. 460  RETURN 
  10. 500  VTAB 19: POKE HL,1: PRINT  CHR$(11): VTAB 23: GOSUB 100:HP = H
  11. 520  IF HM  THEN  PRINT HP$;
  12. 525  VTAB V: POKE HL,HP: PRINT PR$;C$;:HP = HP + LEN(PR$): IF HP +FL > = M  THEN HP = H:V = V +1
  13. 540  VTAB V: POKE HL,HP: PRINT C$;:OA = 0:OP$ = "":SA = 0:SO$ = "": IF HM  THEN OA = 1:OP$ = "/-?":SA = 1:SO$ = "/-?"
  14. 555 ES = 1:CN = 0:FL$ = ".": &  INPUT AN$: IF (  NOT OA  AND   NOT SA)  THEN  PRINT : RETURN 
  15. 570 HE = HM: GOSUB 31000: GOTO 540
  16. 600  TEXT : HOME : PRINT TI$;: IF SU$ = ""  THEN 640
  17. 620  POKE HL,M - LEN(SU$): PRINT SU$;: IF C8  OR (FR$ = ""  AND CR$ = "")  THEN  PRINT MI$(0);
  18. 630  IF FR$ = ""  THEN 640
  19. 635  POKE HL,M - LEN(FR$ +MI$(122)): PRINT MI$(122);FR$;
  20. 640  PRINT : VTAB 3: GOSUB 100
  21. 645 L = C:HE = 0:ES = 0:BO = 0: IF   NOT MX  THEN  RETURN 
  22. 650  FOR I = 1 TO MX: VTAB V(I): POKE HL,H -1: IF I <10  THEN  PRINT " ";
  23. 660  PRINT I;".  ";M$(I): NEXT : VTAB 21: PRINT MI$(10): PRINT MI$(12):I1 =  PEEK(37):I2 =  LEN(MI$(12)) +1: GOSUB 100: IF HM  THEN  PRINT HP$;
  24. 680  RETURN 
  25. 700  FOR A = 1 TO DM: POKE HL,H: VTAB DV(A): &  PRINT D$(A): NEXT : RETURN 
  26. 800  VTAB V(C): POKE HL,H +3:S0$ = M$(C): POKE GD,16: CALL JM: PRINT "<";S0$;">";
  27. 825  VTAB I1: POKE HL,I2: &  GET A$: GOSUB 400: IF HE  THEN  RETURN 
  28. 835 A =  ASC(A$):AV =  VAL(A$): IF A = 13  THEN  RETURN 
  29. 840  IF A = 13  THEN  RETURN 
  30. 845  IF A = 27  THEN ES = 1: RETURN 
  31. 850  IF AV >0  AND AV <MX +1  THEN C = AV
  32. 855  IF A = 11  THEN C = C -1
  33. 860  IF A = 10  THEN C = C +1
  34. 865  IF C <1  THEN C = MX
  35. 870  IF C >MX  THEN C = 1
  36. 875  IF C = L  THEN 825
  37. 880  VTAB V(L): POKE HL,H +3: PRINT " ";M$(L);" ";:L = C: GOTO 800
  38. 900  CALL 768: POKE 216,0: ONERR  GOTO 930
  39. 925  POP : GOTO 925
  40. 930  POKE 216,0: ONERR  GOTO 900
  41. 935  IF UD  THEN CX = 12:CC = 3:UD = 0
  42. 940  IF FR$ = SM$  THEN 2000
  43. 945  IF FR$ = SM$(5)  THEN 15000
  44. 1000  FOR A = 1 TO 9:M$(A) = MM$(A): NEXT :V(1) = 7:V(2) = 8:V(3) = 9:V(4) = 10:V(5) = 14:V(6) = 15:V(7) = 16:V(8) = 17:V(9) = 19:TI$ = MI$(4):SU$ = MM$:MX = 9:FR$ = "":HM = 1:D$(1) = MI$(5):D$(2) = MI$(6):DV(1) = 5:DV(2) = 12:DM = 2: GOSUB 600: GOSUB 700
  45. 1110  VTAB 2: POKE HL,(M - LEN(CR$))/2: PRINT CR$;:CR$ = "":C = LC:L = LC
  46. 1130  GOSUB 800: IF ES  THEN ES = 0: GOTO 1130
  47. 1140  IF HE  THEN HM = C: GOSUB 31000: GOTO 1130
  48. 1150  IF C = 8  THEN LC = 1: GOTO 2000
  49. 1160  IF C = 9  THEN  GOSUB 4000: GOTO 1130
  50. 1170 SD = 0:DD = 0:OS = 0:FR$ = MM$:CC = C:CX = C:LC = C:SU$ = M$(C): GOTO 3000
  51. 2000  FOR A = 1 TO 5:M$(A) = SM$(A): NEXT :V(1) = 7:V(2) = 8:V(3) = 12:V(4) = 13:V(5) = 14:FR$ = MM$:MX = 5:HM = 1:SU$ = MI$(7): IF   NOT C8  THEN TI$ = ""
  52. 2070 D$(1) = MI$(8):D$(2) = MI$(9):DV(1) = 5:DV(2) = 10:DM = 2: GOSUB 600: GOSUB 700:C = LC:L = LC
  53. 2100  GOSUB 800: IF ES  THEN LC = 8: GOTO 1000
  54. 2110  IF HE  THEN HM = C +9: GOSUB 31000: GOTO 2100
  55. 2120 FR$ = SU$:CC = C:CX = C +9:LC = C:SD = 0:DD = 0:OS = 0:SU$ = M$(C)
  56. 3000  POKE GD,253: CALL JM: IF UD  THEN CX = 12:CC = 3:UD = 0
  57. 3050 S1$ = "":S2$ = "":S3$ = "":S4$ = "": IF   NOT C8  THEN TI$ = ""
  58. 3060  IF CX = 14  THEN PR = 1: GOTO 15000
  59. 3070  TEXT : HOME :MX = 0: GOSUB 600
  60. 3080 HM = CM%(CX,1): IF HM  THEN  GOSUB 21000
  61. 3090 HM = CM%(CX,2): IF HM  THEN  GOSUB 22000
  62. 3100  IF CX = 4  THEN  GOSUB 29000
  63. 3120 HM = CM%(CX,3): IF   NOT HM  THEN 3150
  64. 3130 V = 7: IF CX = 1  OR CX = 4  THEN V = 9
  65. 3140 PR$ = MI$(38): GOSUB 27000:SO = 0: IF YN = 1  THEN SO = 1
  66. 3150 HM = CM%(CX,4): IF   NOT HM  THEN 3190
  67. 3160 V = 9: IF CX = 1  OR CX = 4  THEN V = 11
  68. 3170  GOSUB 50000
  69. 3180  IF YN = 1  THEN  GOSUB 51000
  70. 3190  IF FR$ = SM$  THEN  ON CC GOTO 7000,8000,8500,9000
  71. 3200  ON CC GOTO 40000,40000,40000,40000,5000,6000,10000
  72. 4000 LC = 9:PR$ = MI$(68):CM = 3: GOSUB 32000
  73. 4040  IF YN = 2  THEN HM = 1: RETURN 
  74. 4050  TEXT : HOME : PRINT  CHR$(21);: POKE GD,255: CALL JM:AD = 2048:HI =  INT((AD +1)/256):LO = (AD +1) -(HI *256): POKE AD,0: POKE 103,LO: POKE 104,HI: HIMEM: 38400: & EXIT: NEW 
  75. 5000 UD = 0:CD = 1:DO = 1: GOSUB 200: GOSUB 35000
  76. 5040  IF SW  THEN PR$ = SP$: GOTO 5060
  77. 5050 PR$ = MI$(101) +DM$(SD) +MI$(103) +DM$(DD) +"."
  78. 5060 CM = 2: GOSUB 32000
  79. 5080 MO = 0: GOSUB 39000:S1$ = S0$: IF UD  THEN 5110
  80. 5090 OS =  PEEK(OG +3): IF OS <4  THEN 5140
  81. 5100 CM = 4:HM = 119: GOSUB 32000: GOTO 3000
  82. 5110  IF OS < > PEEK(OG +3)  THEN CM = 4: GOSUB 32000: GOTO 3000
  83. 5120 V = 11: GOSUB 50000
  84. 5130  IF DO = 1  THEN  GOSUB 38000:S1$ = S0$
  85. 5140  IF SW  THEN PR$ = DP$ +MI$(141):CM = 2: GOSUB 32000
  86. 5170 BA = 9: IF UD  THEN TM = OS:OS = DO:BA =  PEEK(37) +1
  87. 5180 S2$ = S0$:S0$ = S1$: GOSUB 6180: IF UD  THEN OS = TM: RETURN 
  88. 5190 S3$ = "/" +S2$: PRINT : POKE HL,H: PRINT MI$(124);
  89. 5210  POKE GD,11: POKE GD +1,SD: POKE GD +2,DD: POKE GD +3,OS: CALL JM: GOSUB 30000: IF E  THEN 3000
  90. 5240  GOSUB 36000: IF EE  THEN 5210
  91. 5250  PRINT MI$(88):PR$ = MI$(105): GOSUB 33000: GOTO 3000
  92. 6000 BA = 7:DD = SD:CD = 0: IF OS = 0  OR OS >4  THEN OS = 1
  93. 6050  FOR A = 1 TO 3:M$(A) = OS$(A):V(A) = BA +(A *2): NEXT :M$(4) = MI$(74):V(4) = 15:D$(1) = MI$(72) +MI$(73):DV(1) = BA:MX = 4:DM = 1:C = OS:L = OS:HM = 36: GOSUB 650: GOSUB 700
  94. 6090  GOSUB 800: IF ES  THEN 900
  95. 6100  IF HE  THEN  GOSUB 31000: GOTO 6090
  96. 6110 OS = C: IF C <MX  THEN  GOSUB 38000: GOTO 6180
  97. 6130 PR$ = MI$(70) +DM$(DD) +MI$(136):CM = 2: GOSUB 32000
  98. 6140  POKE GD,13: POKE GD +1,DD: POKE GD +6,0: CALL JM:FM = 1: GOSUB 30000:FM = 0: IF E  THEN 3000
  99. 6160 OS =  PEEK(OG +3): IF OS > = MX  THEN HM = 119:CM = 4: GOSUB 32000: GOTO 3000
  100. 6180  IF UD  THEN 6210
  101. 6200  VTAB BA: POKE HL,H: PRINT  CHR$(11);MI$(73);OS$(OS)
  102. 6210  IF OS = 2  THEN 6320
  103. 6220 V = BA +2:PR$ = MI$(75):HM = 40:FL = 15: IF OS = 3  THEN FL = 7: IF  LEN(S0$) >7  THEN S0$ =  LEFT$(S0$,7)
  104. 6240  GOSUB 34000:AN$ = S0$: GOSUB 500: IF ES  THEN 1000
  105. 6250  IF   NOT  LEN(AN$)  THEN 6240
  106. 6260 S0$ = AN$: GOSUB 34000:S2$ = S0$
  107. 6270  IF OS = 1  THEN S2$ =  MID$ (S2$,2,20)
  108. 6280  POKE GD,26: POKE GD +1,OS: POKE GD +3,1: CALL JM: GOSUB 30000: IF E  THEN 6220
  109. 6300  VTAB BA +2: POKE HL,H: PRINT  CHR$(11);MI$(125);S0$: GOSUB 200
  110. 6320  IF   NOT CD  THEN PR$ = MI$(71) +DM$(DD) +".":CM = 2: GOSUB 32000
  111. 6350  POKE GD,13: POKE GD +1,DD: POKE GD +6,0: CALL JM:A =  PEEK(OG +3): IF A = 6  THEN 6410
  112. 6370 PR$ = MI$(76): IF A = 1  OR A = 3  THEN PR$ = PR$ +"/" +S0$ +"?": GOTO 6400
  113. 6390 PR$ = PR$ +MI$(77) +OS$(A) +MI$(78) +"?"
  114. 6400 CM = 3: GOSUB 32000: IF YN = 2  THEN 3000
  115. 6410  GOSUB 200:V = BA +2: IF OS = 1  OR OS = 3  THEN V = BA +4
  116. 6430  VTAB V: POKE 36,H: PRINT MI$(79);: POKE GD,12: POKE GD +1,DD: POKE GD +3,OS: POKE GD +5,0: CALL JM: GOSUB 30000: IF E  THEN 3000
  117. 6460  PRINT MI$(88): IF CD  THEN  RETURN 
  118. 6470 PR$ = MI$(81): GOSUB 33000: GOTO 3000
  119. 7000  POKE GD,7: CALL JM: IF S0$ = ""  THEN S0$ = MI$(126)
  120. 7050 AN$ = S0$:HM = 38:TE = 3:OF = 9:C = 1: IF SD  THEN C = SD
  121. 7060  FOR A = 1 TO 3:M$(A) = DM$(A):V(A) = (A -1) *2 +OF: NEXT :L = C:MX = 3:DM = 2:D$(1) = MI$(106) +S0$:DV(1) = 5:D$(2) = MI$(61):DV(2) = 7:PR$ = MI$(62): GOSUB 20050:SD = C:S1$ = AN$: GOSUB 200
  122. 7100  POKE GD,5: POKE GD +1,SD: CALL JM: GOSUB 30000: IF E  THEN 3000
  123. 7120  POKE GD,7: CALL JM:PF$ = S0$:PP$ = S0$: IF S0$ = ""  THEN S0$ = MI$(126)
  124. 7140  VTAB 7: POKE HL,H: PRINT MI$(63);S0$;:PR$ = MI$(107): GOSUB 33000
  125. 7160  GOTO 3000
  126. 8000 AN$ = "":PR$ = MI$(69):FL = 15
  127. 8040 V = 7:HM = 41: GOSUB 500: IF ES  THEN 900
  128. 8050 S0$ = AN$: POKE GD,16: CALL JM:S2$ = S0$: POKE GD,26: POKE GD +1,2: POKE GD +3,1: CALL JM: GOSUB 30000: IF E  THEN AN$ = S0$:PR$ = MI$(69): GOTO 8040
  129. 8080  VTAB 8: PRINT  CHR$(11): GOSUB 200
  130. 8090  VTAB 9: POKE HL,H: PRINT MI$(64);S0$;MI$(11);C$;:MO = 0: GOSUB 39000: IF  PEEK(OG +3) = 1  THEN 8120
  131. 8110 CM = 4:HM = 120: GOSUB 32000: GOTO 3000
  132. 8120  POKE GD,6: POKE GD +1,SD: CALL JM: GOSUB 30000: IF E  THEN 3000
  133. 8140  PRINT MI$(88):PR$ = MI$(108): GOSUB 33000: GOTO 3000
  134. 8500  FOR A = 1 TO 3:M$(A) = UM$(A):V(A) = (A -1) *2 +7: NEXT :D$(1) = MI$(130):DV(1) = 5:MX = 3:DM = 1:C = 1: GOSUB 645: GOSUB 700
  135. 8560  GOSUB 800: IF ES  THEN 900
  136. 8570  IF HE  THEN  GOSUB 31000: GOTO 8560
  137. 8580  VTAB 5: POKE HL,H: PRINT  CHR$(11);MI$(118);M$(C):CC = C:HM = 42: GOSUB 21000:HM = 43: GOSUB 22000
  138. 8600 UD = 1:CD = 1: GOSUB 200: GOSUB 35000
  139. 8610  IF CC = 1  THEN OS = 4:DO = 2:HM = 121
  140. 8620  IF CC = 2  THEN OS = 2:DO = 1:HM = 122
  141. 8630  IF CC = 3  THEN OS = 1:DO = 2:HM = 120
  142. 8640  GOSUB 5040
  143. 8650  IF SD = DD  THEN  POKE OG +1,1: GOSUB 36000
  144. 8660 VE$ = MI$(85):CX = 1:CC = 1:SO = 0: PRINT : GOTO 40080
  145. 9000  GOSUB 200
  146. 9040  VTAB 7: POKE HL,H: PRINT MI$(109);:MO = 0: GOSUB 39000
  147. 9060  IF  PEEK(OG +3) >3  THEN HM = 119:CM = 4: GOSUB 32000: GOTO 3000
  148. 9070  POKE GD,15: POKE GD +1,SD: CALL JM: GOSUB 30000: IF E  THEN 3000
  149. 9090  PRINT MI$(88):E =  PEEK(OG +1):A$ = MI$(131): IF E  THEN A$ = MI$(110)
  150. 9110  VTAB 9: POKE HL,H: PRINT A$;:PR$ = MI$(111): GOSUB 33000: GOTO 3000
  151. 10000 MA = 19: IF C8  THEN MA = 20
  152. 10040 PR$ = MI$(48):V = 7:YN = 1: GOSUB 28000:PR = YN -1
  153. 10050  VTAB V +2: PRINT : PRINT  CHR$(11);: GOSUB 200
  154. 10060  IF PR  THEN  GOSUB 11000
  155. 10070  POKE GD,13: POKE GD +1,SD: POKE GD +6,1: CALL JM: IF  PEEK(OG)  THEN  GOSUB 14000: GOSUB 30000: GOTO 3000
  156. 10090  GOSUB 39050
  157. 10100 FI = 0:TB = 0:P1 = 27:P2 = 36: IF C8  THEN P2 = 55
  158. 10110 MB =  PEEK(OG +4) + PEEK(OG +5) *256:OS =  PEEK(OG +3):FO = OF(OS): IF OS = 2  OR OS = 4  THEN S0$ = MI$(52) + STR$( ASC(S0$))
  159. 10140  IF OS = 1  AND SD < >3  THEN  GOSUB 34000
  160. 10150  IF   NOT PR  THEN  HOME : GOSUB 200
  161. 10160  VTAB 4: PRINT MI$(53);S0$;: POKE HL,52: IF   NOT C8  THEN  PRINT 
  162. 10180  PRINT MI$(54);OS$(OS): IF OS = 6  THEN 10430
  163. 10190  PRINT MI$(49);: IF OS <5  THEN  POKE HL,P1 +1: PRINT MI$(50);
  164. 10200  POKE HL,P2: PRINT MI$(51):TE =  PEEK(37): IF PR  THEN  PRINT 
  165. 10220  GOSUB 13000
  166. 10230  POKE GD,13: POKE GD +1,SD: POKE GD +6,1: CALL JM: IF  PEEK(OG)  THEN  GOSUB 14000: GOSUB 30000: GOTO 3000
  167. 10260  IF  PEEK(OG +1) = 255  THEN 10430
  168. 10270 FI = FI +1: POKE GD,25: CALL JM: IF  LEN(S0$) >25  THEN S0$ =  LEFT$(S0$,25)
  169. 10300 FT =  PEEK(OG +2):A$ = " ": IF  PEEK(OG +6)  THEN A$ = "*"
  170. 10310 SI =  PEEK(OG +4) + PEEK(OG +5) *256:NA$ = A$ +S0$: IF OS = 1  AND FT = 15  THEN NA$ = NA$ +"/"
  171. 10330  IF FT >27  AND FT <239  THEN  GOSUB 37000: GOTO 10370
  172. 10340  IF FT >27  THEN FT = FT -211
  173. 10350 FT$ = FT$(FT +FO):A$ =  STR$(SI):TB = TB +SI
  174. 10370  PRINT NA$;: IF OS <5  THEN  POKE HL,P1: PRINT FT$;
  175. 10380  POKE HL,P2 - LEN(A$) +3: PRINT A$
  176. 10390  GOSUB 12000
  177. 10400  IF AV = 1  THEN 10230
  178. 10410  IF AV = 13  THEN 10220
  179. 10420  GOTO 10390
  180. 10430  IF   NOT C8  THEN MA = MA -1
  181. 10450  GOSUB 12000: IF AV = 27  THEN 10000
  182. 10460  IF AV = 13  THEN  GOSUB 13000
  183. 10470  PRINT : PRINT FI;MI$(55);:A$ = MI$(56): IF OS = 2  OR OS = 4  THEN A$ = MI$(57)
  184. 10490  IF OS = 3  OR OS = 5  THEN MB = MB -TB
  185. 10500  &  PRINT ", ";TB;" ";A$;", ";MB;MI$(112);: IF PR  THEN  PRINT 
  186. 10520  GOSUB 14000
  187. 10530 PR$ = MI$(58): GOSUB 33000
  188. 10540  GOTO 3000
  189. 11000 PR$ = MI$(59):HM = 48:A$(1) = MI$(43):A$(2) = MI$(44):R$ = MI$(45):V1 =  ASC("1"):V2 =  ASC("1"):V3 =  ASC("2"):V4 =  ASC("2"):V = 9:YN = 1:A = 1: GOSUB 25000:V = V +2
  190. 11045  VTAB V: POKE HL,H: PRINT MI$(139);:SV = V:SH =  PEEK(HL): PRINT : PRINT  CHR$(4);"PR#";YN: PRINT  CHR$(9);"80N": IF   NOT C8  THEN  PRINT  CHR$(17);
  191. 11080 S1 = C8:S2 = M:S3 = HL:C8 = 1:M = 80:HL = 36: RETURN 
  192. 12000 AV = 1: IF PR  THEN  RETURN 
  193. 12020 V =  PEEK(37): IF (V <MA)  THEN  RETURN 
  194. 12030 PR$ = "": GOSUB 33000
  195. 12040  RETURN 
  196. 13000  IF PR  THEN  RETURN 
  197. 13020  GOSUB 200
  198. 13030  POKE 32,0: POKE 33,M: POKE 34,TE: POKE 35,MA +1: HOME :HM = 49: RETURN 
  199. 14000  TEXT :E =  PEEK(OG): POKE GD,13: POKE GD +6,255: CALL JM: POKE OG,E: IF   NOT PR  THEN  RETURN 
  200. 14040 C8 = S1:M = S2:HL = S3: POKE GD,17: CALL JM: PRINT  CHR$(4);"PR#0": PRINT  CHR$(4);"PR#3": PRINT : IF   NOT C8  THEN  PRINT  CHR$(17);
  201. 14080  POKE GD,18: CALL JM: VTAB SV: POKE HL,SH: PRINT MI$(88); CHR$(11): GOSUB 200
  202. 14100  RETURN 
  203. 15000 M$(1) = CM$(0,1):V(1) = 8:M$(2) = CM$(0,2):V(2) = 11:M$(3) = CM$(0,3):V(3) = 14:FR$ = MM$(8):SU$ = SM$(5):MX = 3:C = PR:HM = 50: GOSUB 600
  204. 15060 D$(1) = CM$(0,0):DV(1) = 6:D$(2) = "    " +D1$:DV(2) = 9:D$(3) = "    " +D2$:DV(3) = 12:DM = 3: GOSUB 700
  205. 15080  GOSUB 800: IF ES  THEN C = 5:L = 5: GOTO 2000
  206. 15090  IF HE  THEN  GOSUB 31000: GOTO 15080
  207. 15100 FR$ = SM$(5):PR = C: FOR A = 1 TO 9:M$(A) = CM$(1,A):V(A) = 6 +A: NEXT :DM = 1:V(8) = 15:V(9) = 16: IF C = 3  THEN HM = 53: GOSUB 18000: GOTO 15000
  208. 15140 MX = 09:DV(1) = 5:DM = 1:C = 1:D$(1) = CM$(1,0) + STR$(PR) +":":HM = 51:SU$ = MI$(127) + STR$(PR): GOSUB 600: GOSUB 700
  209. 15180  GOSUB 800: IF ES  THEN 15000
  210. 15190  IF HE  THEN  GOSUB 31000: GOTO 15180
  211. 15200  IF C = 8  THEN 15300
  212. 15210  IF C = 9  THEN 15400
  213. 15220  GOSUB 19200:S1$ = S1$ +" ("
  214. 15230 V = 18: GOSUB 19000
  215. 15240  GOTO 15000
  216. 15300 V = V(C): VTAB V: POKE HL,0: PRINT  CHR$(11): GOSUB 15500:S1$ = "("
  217. 15330  GOSUB 19000
  218. 15340  GOTO 15000
  219. 15400  GOSUB 17000:S1$ = "(": GOSUB 19000: GOTO 15000
  220. 15500 FL = 9: IF PR <3  THEN AN$ = ""
  221. 15520 PR$ = MI$(60):HM = 53: GOSUB 500: IF ES  THEN 900
  222. 15540 S0$ =  LEFT$(AN$ +"        ",8): POKE GD,8: CALL JM: VTAB V: POKE HL,H: PRINT MI$(60);S0$;"  ": IF  PEEK(OG)  THEN  GOSUB 19500: GOTO 15520
  223. 15570 V = V +2:PR$ = MI$(84): GOSUB 26000
  224. 15580  IF YN = 2  THEN V = V -2: GOTO 15520
  225. 15590  RETURN 
  226. 16000 VV = V:HM = 65:PR$ = MI$(82): GOSUB 26000: IF YN = 2  THEN  RETURN 
  227. 16020 S0$ = PP$ +MI$(132): POKE GD,17: CALL JM: POKE GD,23: CALL JM: &  PRINT MI$(133);S0$;MI$(11);:OK = 0: ONERR  GOTO 16140
  228. 16070  PRINT  CHR$(4);"OPEN ";S0$: PRINT  CHR$(4);"WRITE ";S0$: PRINT P1$: PRINT D1$: PRINT P2$: PRINT D2$: FOR A = 1 TO 7: PRINT CM$(1,A): NEXT : PRINT  CHR$(4);"CLOSE":OK = 1
  229. 16140  POKE 216,0: ONERR  GOTO 900
  230. 16160  PRINT  CHR$(4);"CLOSE": POKE GD,18: CALL JM: IF OK  THEN  RETURN 
  231. 16190 PR$ = MI$(120) +S0$:CM = 2: GOSUB 32000:V = VV: GOTO 16000
  232. 17000 S1$ = "":HM = 54:DM = 1:F = 2:MX = 2:PM = 0: GOSUB 17500
  233. 17030 PM = C:MX = 0: GOSUB 600
  234. 17050 HM = 55:F = 3:MX = 6: GOSUB 17500
  235. 17060 HM = 57:F = 4:MX = 7: GOSUB 17500
  236. 17070 S1$ = S1$ +"/":HM = 58:F = 5:MX = 5: GOSUB 17500
  237. 17090 HM = 59:F = 6:MX = 2: GOSUB 17500
  238. 17100 HM = 60:F = 7:MX = 2: GOSUB 17500
  239. 17110 F = 8: IF PM = 1  THEN HM = 61:MX = 5: GOSUB 17500
  240. 17120  IF PM = 2  THEN S1$ = S1$ +"1":CN%(F -1) = 1
  241. 17210 MX = 0: GOSUB 600
  242. 17220  FOR F = 2 TO 8:C = CN%(F -1): VTAB F +3: POKE HL,H: PRINT CM$(F,C): NEXT :S0$ = S1$: POKE GD,8: CALL JM: IF  PEEK(OG)  THEN  GOSUB 19500: GOTO 17000
  243. 17290  VTAB  PEEK(37) +2: POKE HL,H: PRINT MI$(128);S0$:V =  PEEK(37) +2:C = 5:L = 5:HM = 0:PR$ = MI$(37): GOSUB 26000: IF YN = 2  THEN 17000
  244. 17320  RETURN 
  245. 17500  FOR A = 1 TO MX:M$(A) = CM$(F,A): NEXT :D$(1) = CM$(F,0):DV(1) = 5:C = DC%(PM,F -1): IF   NOT C  THEN C = 1
  246. 17530  POKE 32,0: POKE 33,M: POKE 34,4: POKE 35,18: HOME : TEXT : GOSUB 700: GOSUB 645
  247. 17550  GOSUB 800: IF ES  THEN 900
  248. 17560  IF HE  THEN  GOSUB 31000: GOTO 17550
  249. 17570 CN%(F -1) = C:S1$ = S1$ + STR$(C): RETURN 
  250. 18000  HOME :C = 5:MX = 7:D$(1) = MI$(65):SU$ = CM$(0,3):HM = 64:DV(1) = 5: GOSUB 600: GOSUB 700
  251. 18030  GOSUB 800:SL = C: IF ES  THEN 900
  252. 18040  IF HE  THEN  GOSUB 31000: GOTO 18030
  253. 18060 MX = 0: GOSUB 600:V = 6:AN$ = "":FL = 21:PR$ = MI$(66)
  254. 18070 AN$ = "": GOSUB 19200: IF S1$ < >""  THEN AN$ = S1$
  255. 18080 HM = 62: GOSUB 500:DN$ = AN$: IF ES  THEN 900
  256. 18090  PRINT  CHR$(11):V =  PEEK(37) +2: VTAB V: PRINT C$;:HM = 63:PR$ = MI$(67): GOSUB 26000: VTAB V: PRINT  CHR$(11);
  257. 18120  IF YN = 2  THEN  GOSUB 17000: GOTO 18140
  258. 18129 AN$ = "": IF S1$ < >""  THEN AN$ = S0$
  259. 18130  GOSUB 15500
  260. 18140 CM$(1,SL) = DN$ +" (" +S0$ +")": FOR A = 1 TO 7:M$(A) = CM$(1,A): NEXT :MX = 7: GOSUB 600:V = 15:C = 5:L = 5
  261. 18180  VTAB V: PRINT  CHR$(11): GOSUB 16000
  262. 18200  GOTO 18000
  263. 18888 S0$ =  MID$ (CM$(1,C), LEN(CM$(1,C)) -8,8)
  264. 19000  POKE GD,9: POKE GD +1,PR: CALL JM: IF BY  THEN  RETURN 
  265. 19030 E =  PEEK(OG): IF E  THEN 19500
  266. 19040  IF PR = 1  THEN P1$ = S0$:D1$ = S1$ +S0$ +")"
  267. 19050  IF PR = 2  THEN P2$ = S0$:D2$ = S1$ +S0$ +")"
  268. 19060  GOSUB 16000
  269. 19070  RETURN 
  270. 19200 S0$ =  MID$ (CM$(1,C), LEN(CM$(1,C)) -8,8): IF CM$(1,C) = MI$(117)  THEN S1$ = "": RETURN 
  271. 19230 S1$ =  LEFT$(M$(C), LEN(M$(C)) -11): RETURN 
  272. 19500 HM = 117:CM = 4: GOSUB 32000
  273. 19520  RETURN 
  274. 20000  FOR A = 1 TO MX:M$(A) = DM$(A):V(A) = (A -1) *2 +OF: NEXT :DM = 1:DV(1) = OF -2
  275. 20050  POKE 34,TE: POKE 35,24: HOME : GOSUB 650: GOSUB 700
  276. 20070  GOSUB 800: IF ES  THEN L = LC: GOTO 900
  277. 20080  IF HE  THEN  GOSUB 31000: GOTO 20070
  278. 20090 AN$ = "": IF C <3  THEN 20180
  279. 20110 X$ = PR$:AN$ = PF$
  280. 20120 V = V(3):PR$ = MI$(31):HM = 46:FL = 38: GOSUB 500: IF ES  THEN 900
  281. 20140 PR$ = X$: IF  LEFT$(AN$,1) < >"/"  THEN AN$ = PF$ +AN$
  282. 20145  IF  RIGHT$(AN$,1) < >"/"  THEN AN$ = AN$ +"/"
  283. 20150 S0$ = AN$: POKE GD,16: CALL JM: POKE GD,26: POKE GD +1,0: POKE GD +3,1: CALL JM:AN$ = S0$: IF CX < >10  OR S0$ < >"/"  THEN  GOSUB 30000: IF E  THEN 20120
  284. 20180  HOME : VTAB TE +2: POKE HL,H: PRINT PR$;: IF C = 3  THEN  PRINT AN$;: RETURN 
  285. 20200  IF PR$ = MI$(15)  THEN  PRINT MI$(135);
  286. 20210  PRINT M$(C);: RETURN 
  287. 21000 OF = 7:TE = 3: IF CX = 12  THEN OF = 9:TE = 5
  288. 21020 C = 1: IF SD  THEN C = SD
  289. 21030 MX = 3: IF CX >4  AND CX < >7  AND CX < >11  THEN MX = 2
  290. 21040 L = C:D$(1) = MI$(14):PR$ = MI$(15): IF CX = 1  OR CX = 5  OR CX = 12  THEN D$(1) = MI$(16):PR$ = MI$(17)
  291. 21060  GOSUB 20000:SD = C:C = LC:S1$ = AN$
  292. 21070  RETURN 
  293. 22000 OF = 9:TE = 5: IF CX = 12  THEN OF = 11:TE = 7
  294. 22020 C = 1: IF DD  THEN C = DD
  295. 22030 MX = 3: IF CX >4  AND CX < >11  THEN MX = 2
  296. 22040 L = C:D$(1) = MI$(18):PR$ = MI$(19): GOSUB 20000:DD = C:C = LC:S3$ = AN$
  297. 22060  RETURN 
  298. 25000 YN = 1: POKE HL,0: VTAB 20: IF C8  THEN  VTAB 21
  299. 25040  PRINT  CHR$(11);R$;", ";: IF   NOT C8  THEN  PRINT 
  300. 25050  PRINT MI$(47): PRINT MI$(27):HP =  LEN(MI$(27)): GOSUB 100: IF HM  THEN  PRINT HP$;
  301. 25070  IF BO  THEN  GOSUB 25500: GOTO 25110
  302. 25080  VTAB V: POKE HL,H: PRINT PR$;C$;: IF C8  THEN  &  PRINT " ";A$(YN);" ";: GOTO 25110
  303. 25100  PRINT : HTAB 5: &  PRINT A$(YN);
  304. 25110 A$ =  CHR$(V1): IF YN = 2  THEN A$ =  CHR$(V3)
  305. 25120  VTAB 22: POKE HL,HP
  306. 25130  &  GET A$: IF HM  THEN  GOSUB 400
  307. 25140  IF HE  THEN  GOSUB 31000: GOTO 25130
  308. 25150 AV =  ASC(A$): IF AV = 27  THEN 900
  309. 25160  IF AV = 13  THEN  RETURN 
  310. 25170  IF AV = V1  OR AV = V2  THEN YN = 1
  311. 25180  IF AV = V3  OR AV = V4  THEN YN = 2
  312. 25190  IF AV = 21  THEN YN = 2
  313. 25200  IF AV = 08  THEN YN = 1
  314. 25210  GOTO 25070
  315. 25500 LE = 3:WI = 34:TE = 2:BE = 8: IF C8  THEN LE = 7:WI = 66:TE = 09:BE = 15
  316. 25530  POKE 32,LE: POKE 33,WI: POKE 34,TE: POKE 35,BE: VTAB TE +1: PRINT : &  PRINT PR$;: IF   NOT C8  THEN  PRINT : PRINT 
  317. 25560  &  PRINT "    ";A$(YN);" ";: TEXT : RETURN 
  318. 26000 A$(1) = MI$(20):A$(2) = MI$(21):R$ = MI$(22):V1 =  ASC("Y"):V2 =  ASC("y"):V3 =  ASC("N"):V4 =  ASC("n"): GOSUB 25000
  319. 26040  RETURN 
  320. 27000 A$(1) = MI$(24):A$(2) = MI$(25):R$ = MI$(26):V1 =  ASC("S"):V2 =  ASC("s"):V3 =  ASC("A"):V4 =  ASC("a"): GOSUB 25000
  321. 27040  RETURN 
  322. 28000 A$(1) = MI$(28):A$(2) = MI$(29):R$ = MI$(30):HM = 47:V1 =  ASC("D"):V2 =  ASC("d"):V3 =  ASC("P"):V4 =  ASC("p"): GOSUB 25000
  323. 28040  RETURN 
  324. 29000 V = 7:PR$ = MI$(39):HM = 29:A$(1) = MI$(40):A$(2) = MI$(41):R$ = MI$(42):V1 =  ASC("L"):V2 =  ASC("l"):V3 =  ASC("U"):V4 =  ASC("u"): GOSUB 25000:LO = YN -1
  325. 29050  RETURN 
  326. 30000 E =  PEEK(OG): IF   NOT E  THEN  RETURN 
  327. 30040  IF E = 1  AND FM  THEN E = 0: RETURN 
  328. 30045  IF E = 6  THEN E = 1
  329. 30050  POKE OG,0:MA = 0: IF E = 1  OR E = 3  OR E = 7  OR E = 8  OR E = 10  OR E = 11  OR E = 19  THEN MA = 1
  330. 30070 HM = 100 +E:CM = 4: GOSUB 32000
  331. 30080  RETURN 
  332. 31000 CM = 4: IF FH  OR HM >09  THEN 31060
  333. 31050 FH = HM:HM = 66: GOSUB 32000:HM = FH
  334. 31060  GOSUB 32000:HE = 0:FH = 1
  335. 31070  RETURN 
  336. 32000 SV =  PEEK(37):SH =  PEEK(HL): POKE GD,17: CALL JM: TEXT : POKE HL,0: PRINT C$;: POKE KB,0: IF CM = 4  THEN  POKE GD,22: POKE GD +1,HM: CALL JM: GOTO 32210
  337. 32140  POKE GD,23: CALL JM: IF CM = 3  THEN 32260
  338. 32160  &  PRINT PR$:V = 9: IF   NOT C8  AND CM = 2  AND FR$ < >MM$  THEN V = 8
  339. 32180  IF C8  THEN V = 16: IF CM = 2  AND FR$ = MM$  THEN V = 17
  340. 32190  VTAB V: IF CM = 1  THEN  PRINT MI$(80);
  341. 32200  IF CM = 2  THEN  VTAB  PEEK(37): &  PRINT MI$(46);FR$;".";
  342. 32210  &  GET A$: IF CM = 4  THEN 32300
  343. 32230 AV =  ASC(A$): IF AV = 13  THEN 32300
  344. 32240  IF CM = 2  AND AV = 27  THEN 900
  345. 32250  GOTO 32210
  346. 32260 BO = 1:V = 3: IF C8  THEN V = 11
  347. 32280  TEXT : VTAB 7:HM = 0: GOSUB 26000:BO = 0
  348. 32300  POKE GD,18: CALL JM: VTAB SV +1: POKE HL,SH: RETURN 
  349. 33000  POKE KB,0:V = 22: IF C8  THEN V = 23
  350. 33040  TEXT : VTAB V: POKE HL,0:AN$ = "": IF  LEN(PR$)  THEN AN$ = PR$ +"; "
  351. 33060  &  PRINT AN$;MI$(46);FR$;".";
  352. 33070  &  GET A$: IF CX = 7  THEN HM = 49: GOSUB 400: IF HE  THEN  GOSUB 31000: GOTO 33070
  353. 33080 AV =  ASC(A$): IF AV = 27  THEN 900
  354. 33090  IF AV = 13  THEN  VTAB V -1: POKE HL,0: PRINT  CHR$(11);: RETURN 
  355. 33100  GOTO 33070
  356. 34000  POKE GD,16: CALL JM: IF OS = 3  AND  LEFT$(S0$,1) = "/"  THEN S0$ =  MID$ (S0$,2,10)
  357. 34050  IF OS < >1  THEN  RETURN 
  358. 34060  IF  LEFT$(S0$,1) < >"/"  THEN S0$ = "/" +S0$
  359. 34070  IF  LEN(S0$) >16  THEN S0$ =  LEFT$(S0$,16)
  360. 34080  RETURN 
  361. 35000 SW = 0: IF SD <3  THEN SP$ = MI$(101) +DM$(SD) +"."
  362. 35050  IF SD = 3  THEN SP$ = MI$(115):SW = 1
  363. 35060  IF DD <3  THEN DP$ = MI$(102) +DM$(DD) +"."
  364. 35070  IF DD = 3  THEN DP$ = MI$(116):SW = 1
  365. 35080  IF (SD = 1  AND DD = 1)  OR (SD = 2  AND DD = 2)  THEN SW = 1
  366. 35090  RETURN 
  367. 36000 EE =  PEEK(OG +1): IF EE = 1  THEN PR$ = SP$
  368. 36040  IF EE = 2  THEN PR$ = DP$
  369. 36050  IF EE  THEN CM = 2:PR$ = PR$ +MI$(141): GOSUB 32000:AU = 3
  370. 36060  IF EE < >2  OR DO  THEN  RETURN 
  371. 36070 A$ = S0$:AN$ = S1$:S1$ = S3$: POKE GD,13: POKE GD +1,DD: POKE GD +6,0: CALL JM: GOSUB 30000: IF E  THEN 3000
  372. 36100 DO =  PEEK(OG +3):S0$ = A$:S1$ = AN$: RETURN 
  373. 37000 HI =  INT(FT/16):LO = FT -(HI *16):FT$ = "Type=" +HD$(HI) +HD$(LO): RETURN 
  374. 38000 S0$ = MI$(129) + RIGHT$("0" + STR$( INT( RND(1) *100)),2): GOSUB 34000: RETURN 
  375. 39000  POKE GD,13: POKE GD +1,SD: POKE GD +6,MO: CALL JM: GOSUB 30000: IF E  THEN  POP : GOTO 3000
  376. 39050  IF  PEEK(OG +3) < >1  THEN  RETURN 
  377. 39060  IF  LEN(PP$)  THEN  RETURN 
  378. 39070 PF$ = S0$: IF  LEFT$(PF$,1) < >"/"  THEN PF$ = "/" +PF$
  379. 39080  IF  RIGHT$(PF$,1) < >"/"  THEN PF$ = PF$ +"/"
  380. 39090  RETURN 
  381. 40000 VE$ = MI$(84 +CC):DO = 0:SW = 0:HM = 0:FT = 1: IF CC = 1  THEN  GOSUB 35000: IF   NOT SW  THEN  GOSUB 44000
  382. 40050  IF CC = 4  THEN DO = LO:VE$ = MI$(98 +LO)
  383. 40060  TEXT : POKE 34,3: POKE 35,24: HOME : GOSUB 200
  384. 40070  IF CC = 3  THEN  PRINT HP$;
  385. 40080 BE = 20: IF C8  THEN BE = 21
  386. 40090  POKE 34,3: POKE 35,BE: IF   NOT UD  THEN  HOME 
  387. 40110  FOR CF = 1 TO FI: IF SO  AND   NOT SE%(CF)  THEN 40270
  388. 40120 S2$ = FI$(CF):S0$ = S2$: POKE GD,25: CALL JM
  389. 40140  PRINT VE$;" ";S0$;MI$(11);:AU = 0: IF  PEEK(49152) = 155  THEN  GET A$:E = 1:CF = FI: GOTO 40240
  390. 40160  IF CC = 3  THEN  GOSUB 43000: IF BY  THEN 40240
  391. 40170  POKE GD +1,SD: POKE GD +2,DD: POKE GD +3,OS: POKE GD +4,DO: POKE GD +5,AU: POKE GD +8,FT: POKE GD,CC: CALL JM:E =  PEEK(OG): IF E = 13  THEN 41000
  392. 40210  IF E = 9  THEN 42000
  393. 40220  GOSUB 30000: IF (E  AND MA)  THEN 3000
  394. 40230  IF SW  THEN  GOSUB 36000: IF EE  THEN 40170
  395. 40240 A$ = MI$(88): IF E  AND E < >14  THEN A$ = MI$(89)
  396. 40250 FT = 0: PRINT A$: IF  PEEK(OG +7)  THEN S2$ = S0$: POKE OG +7,0: GOTO 40140
  397. 40270  NEXT :PR$ = VE$ +MI$(114): IF UD  THEN PR$ = MI$(119)
  398. 40290  GOSUB 33000: GOTO 3000
  399. 41000 XX = BE:A$ = MI$(89 +CC):S0$ = S2$: POKE GD,25: CALL JM:PR$ = MI$(93) +S0$ +MI$(94) +A$ +MI$(95):CM = 3: GOSUB 32000
  400. 41050 BE = XX: IF YN = 1  THEN AU = 1: GOTO 40170
  401. 41070  GOTO 40240
  402. 42000 XX = BE:S0$ = S2$: IF CC = 3  THEN S0$ = S4$
  403. 42030  POKE GD,25: CALL JM:PR$ = MI$(93) +S0$ +MI$(96) +MI$(97):CM = 3: GOSUB 32000
  404. 42060 BE = XX: IF YN = 1  THEN AU = 2: GOTO 40170
  405. 42080  GOTO 40240
  406. 43000  IF   NOT C8  THEN  PRINT 
  407. 43020 PR$ = MI$(100):FL = 15:AN$ = S0$:V =  PEEK(37) +1:HH =  PEEK(HL)
  408. 43030 HP = HH:HM = 25: GOSUB 525: IF ES  THEN 900
  409. 43040 S0$ = AN$: POKE GD,16: CALL JM:S4$ = S0$:P = 3: IF OS = 1  AND  RIGHT$(S2$,1) = "/"  THEN P = 2
  410. 43060  POKE GD,26: POKE GD +1,P: POKE GD +3,OS: CALL JM: GOSUB 30000: IF E  THEN AN$ = S0$: GOTO 43030
  411. 43080  IF   NOT C8  THEN V = V -1
  412. 43090  IF V >(BE -2)  THEN V = V -1
  413. 43100  VTAB V: POKE HL,0: PRINT  CHR$(11);:S0$ = S2$: POKE GD,16: CALL JM: POKE GD,25: CALL JM: PRINT VE$;" ";S0$;MI$(123);S4$;MI$(11);:BY = 0: IF S0$ = S4$  THEN E = 0:BY = 1
  414. 43140  RETURN 
  415. 44000  IF SW  THEN PR$ = DP$:CM = 2: GOSUB 32000
  416. 44020  POKE GD,13: POKE GD +1,DD: POKE GD +6,0: CALL JM: GOSUB 30000: IF E  THEN 3000
  417. 44040 DO =  PEEK(OG +3): IF OS = DO  OR (OS < >3  AND DO < >3)  THEN  RETURN 
  418. 44070 CM = 4:HM = 130: GOSUB 32000: GOTO 3000
  419. 44080  RETURN 
  420. 50000 FI = 0:BA = 0: VTAB V: IF   NOT C8  THEN  PRINT 
  421. 50040  POKE HL,H:A$ = MI$(134): IF SD <3  THEN  &  PRINT A$;MI$(135);DM$(SD);" ";: GOTO 50070
  422. 50060  &  PRINT A$;S1$;" ";
  423. 50070 MO = 1: GOSUB 39000:OS =  PEEK(OG +3)
  424. 50090  IF (OS <3)  OR (OS = 3  AND CX < >4)  THEN 50130
  425. 50100  IF OS = 4  AND (CX = 1  OR CX = 12)  THEN 50130
  426. 50110 CM = 4:HM = 119: IF CX = 4  AND OS = 3  THEN HM = 129
  427. 50120  GOSUB 32000: GOTO 3000
  428. 50130  POKE GD,13: POKE GD +1,SD: POKE GD +6,1: CALL JM: PRINT ".";: GOSUB 30000: IF E  THEN 3000
  429. 50160  IF  PEEK(OG +1) = 255  THEN 50200
  430. 50170 FT =  PEEK(OG +2): IF OS = 1  AND FT = 15  THEN S0$ = S0$ +"/"
  431. 50180 FI = FI +1: IF FI >255  THEN BA = 1: GOTO 50200
  432. 50190 FI$(FI) = S0$:SE%(FI) = 0: GOTO 50130
  433. 50200  POKE GD,13: POKE GD +1,SD: POKE GD +6,255: CALL JM: IF (BA)  THEN FI = 255:CM = 2:PR$ = MI$(138): GOSUB 32000
  434. 50230  IF FI  THEN  RETURN 
  435. 50240 CM = 4:HM = 118: GOSUB 32000: GOTO 3000
  436. 51000 PA = 1:MF = (C8 +1) *22: IF MF >FI  THEN MF = FI
  437. 51040  TEXT : VTAB 4: PRINT  CHR$(11): VTAB 20: PRINT MI$(32): PRINT MI$(33): PRINT MI$(34): GOSUB 100: IF HM  THEN  PRINT HP$;
  438. 51070 I1 = 22:I2 =  LEN(MI$(34)) +1:NU = 0: POKE 32,0: POKE 33,M: POKE 34,3: POKE 35,18:FI$(0) = MI$(35):HV%(0,1) = 5:HV%(0,2) = 2:SE%(0) = 255
  439. 52000  HOME :OF = (PA -1) *MF:F = OF:CF = 0:FD = 0
  440. 52020 CF = CF +1:F = F +1: IF F >FI  OR CF >MF  THEN 52080
  441. 52040 FD = FD +1:S0$ =  LEFT$(FI$(F),15): POKE GD,25: CALL JM:A$ = " ": IF SE%(F)  THEN A$ = SC$(4)
  442. 52070  VTAB HV%(CF,1): POKE HL,HV%(CF,2): PRINT A$;" ";S0$;: GOTO 52020
  443. 52080 CF = 1:NO = 0:PO = 0:MA = MF: IF PA >1  THEN PO = 1: VTAB HV%(0,1): POKE HL,HV%(0,2) +2: PRINT FI$(0);
  444. 52130  IF OF +FD > = FI  THEN  POKE KB,0: GOTO 53000
  445. 52140 FX = OF +FD +1:NO = 1:FD = FD +1:T$ = FI$(FX):FI$(FX) = MI$(36):HV%(FD,1) = 17:HV%(FD,2) = 20: IF C8  THEN HV%(FD,2) = 56
  446. 52170 TS = SE%(FX):SE%(FX) = 255:TF = FX:MA = MA +1: VTAB 17: POKE HL,HV%(FD,2) +2: PRINT FI$(FX);
  447. 53000 F = OF +CF:VV = HV%(CF,1):HH = HV%(CF,2) +1: VTAB VV: POKE HL,HH:S0$ =  LEFT$(FI$(F),15): IF   NOT CF  THEN S0$ = FI$(CF)
  448. 53040  POKE GD,25: CALL JM: PRINT "<";S0$;">";
  449. 53060  VTAB I1: POKE HL,I2
  450. 53070  &  GET A$: GOSUB 400: IF HE  THEN  GOSUB 31000: GOTO 53070
  451. 53080 AV =  ASC(A$): IF CF = 0  OR SE%(F) >200  THEN  GOSUB 53500
  452. 53090  IF AV = 8  THEN A = 0:A$ = " ":C =  -1: GOTO 53300
  453. 53100  IF AV = 21  THEN A = 1:A$ = SC$(4):C = 1: GOTO 53300
  454. 53110  IF AV = 10  THEN A = 1: GOTO 53400
  455. 53120  IF AV = 11  THEN A =  -1: GOTO 53400
  456. 53130  IF AV = 9  THEN 53600
  457. 53140  IF AV = 27  THEN 900
  458. 53150  IF AV = 13  THEN 54000
  459. 53160  GOTO 53070
  460. 53300  IF (SE%(F) = A)  THEN 53060
  461. 53320  VTAB VV: POKE HL,HH -1: PRINT A$;:SE%(F) = A:NU = NU +C: IF NU <0  THEN NU = 0
  462. 53340  GOTO 53060
  463. 53400  VTAB VV: POKE HL,HH: PRINT " ";S0$;" ";:CF = CF +A: IF CF <0  THEN CF = FD
  464. 53430  IF CF >FD  THEN CF = 0
  465. 53440  IF PO  OR CF  THEN 53000
  466. 53450 A = 1: IF AV = 11  THEN A = FD
  467. 53460 CF = A: GOTO 53000
  468. 53500  IF AV = 13  THEN AV = 21
  469. 53520  IF AV = 9  THEN AV = 0
  470. 53530  IF AV < >21  THEN  RETURN 
  471. 53540 FI$(TF) = T$:SE%(TF) = TS:PA = PA +1: IF   NOT CF  THEN PA = PA -2
  472. 53560  GOTO 52000
  473. 53600 A = CF +11: IF A < = FD  THEN 53640
  474. 53620 A = A -( INT(A/11) *11): IF A <1  THEN A = CF: IF A = 22  OR A = 33  OR A = 44  THEN A = 11
  475. 53640  IF A < >CF  THEN CF = A: VTAB VV: POKE HL,HH: PRINT " ";S0$;" ";
  476. 53650  GOTO 53000
  477. 54000  IF   NOT NU  THEN PR$ = MI$(121):CM = 2: GOSUB 32000: GOTO 53000
  478. 54020  IF (NO)  THEN FI$(TF) = T$:SE%(TF) = TS
  479. 54030  RETURN 
  480. 60000  PRINT  CHR$(4);"RESTORE SU4.OBJ":M = 80:H = 20:C8 = 1:HL = 1403:P = 49248: IF  PEEK(P) >127  THEN M = 40:H = 1:C8 = 0:HL = 36
  481. 60060 C$ =  CHR$(18): IF   NOT C8  THEN C$ =  CHR$(17)
  482. 60070 P =  PEEK(49183): IF (C8  AND P <128)  OR (  NOT C8  AND P >127)  THEN  HOME 
  483. 60080  PRINT C$;: VTAB 16: POKE HL, INT((M - LEN(MI$(104)))/2) +1: &  PRINT MI$(104): POKE GD,24: POKE GD +1,C8 *128: POKE GD +2,LA: CALL JM: ONERR  GOTO 62000
  484. 61020  PRINT  CHR$(4);"OPEN ";MI$(132): PRINT  CHR$(4);"READ ";MI$(132): INPUT A$: IF  LEN(A$)  THEN P1$ = A$
  485. 61050  INPUT A$: IF  LEN(A$)  THEN D1$ = A$
  486. 61060  INPUT A$: IF  LEN(A$)  THEN P2$ = A$
  487. 61070  INPUT A$: IF  LEN(A$)  THEN D2$ = A$
  488. 61080  FOR A = 1 TO 7: INPUT A$: IF  LEN(A$)  THEN CM$(1,A) = A$
  489. 61100  NEXT 
  490. 62000  PRINT  CHR$(4);"CLOSE": POKE 216,0:BY = 1:PR = 1:S0$ = P1$: GOSUB 19000
  491. 62040 PR = 2:S0$ = P2$: GOSUB 19000:BY = 0
  492. 62050 LP$ = "":C$ =  CHR$(29): POKE GD,7: CALL JM:PF$ = S0$:PP$ = S0$: ONERR  GOTO 900
  493. 62090  GOTO 1000